In certain electrical devices it is necessary to select and switch among a number of clock source oscillators that are asynchronous with respect to each other. Generally, it is desirable to switch between oscillators without generating runt pulses or electrical glitches. The conventional approach to clock selection and switching requires the use of a multiplexer. However, the use of a multiplexer can produce unwanted runt pulses, metastable conditions, and other anomalies.
One particular application in which a clock selector is useful is the frame rate conversion process performed by some video processing systems. Such video processing systems typically consist of a dual banked memory in which one bank of the memory is filled while the other bank is emptied. Because the recesses of filling and emptying the memory banks are generally asynchronous, it is necessary to switch the memory banks from one clock source to another without anomalous effects.
The prior art clock selector systems generally have long latency times in switching, or they have complex circuitry that attempts to find a point at which switching can occur without the generation of switching anomalies. Although such prior art systems may prevent metastability problems, typically they do not address the problem of generating clock pulses during the switching period that do not obey either of the clock specifications.
Therefore, there is a need for a relatively simple circuit for selecting and switching from one to another of a plurality of clock sources having different frequencies without generating runt pulses, electrical glitches, metastable conditions, or other anomalies.